{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from tqdm.notebook import tqdm\n",
    "import lightgbm as lgb"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "count_2017=pd.read_csv(\"./data/count_2017.csv\")\n",
    "#此处读取的是处理后的count_2018的数据，因为原数据是有缺失的，需要补齐\n",
    "count_2018=pd.read_csv(\"./data/count_2018_update.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "#此处读取的是处理后的count_2019，count_2020的数据，因为原数据是有缺失的，需要补齐\n",
    "count_2019=pd.read_csv(\"./data/count_2019_update.csv\")\n",
    "count_2020=pd.read_csv(\"./data/count_2020_update.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "sub = pd.read_csv(\"./data/submit.csv\")\n",
    "to_predict=pd.read_csv(\"./data/to_predict.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "count_train=pd.concat([count_2017,count_2018],axis=0)\n",
    "count_train=count_train.sort_values(by=['admin_illness_name', 'date']).reset_index(drop=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "count_test=pd.concat([count_2019,count_2020],axis=0)\n",
    "count_test=count_test.sort_values(by=['admin_illness_name', 'date']).reset_index(drop=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_test(df,ids):\n",
    "    d = df[df[\"admin_illness_name\"]==ids].copy().reset_index(drop=True)\n",
    "    d1 = d[d[\"date\"]==20190228].reset_index(drop=True)\n",
    "    d2 = d[d[\"date\"]==20190531].reset_index(drop=True)\n",
    "    d3 = d[d[\"date\"]==20190831].reset_index(drop=True)\n",
    "    d4 = d[d[\"date\"]==20191130].reset_index(drop=True)\n",
    "    d5 = d[d[\"date\"]==20200331].reset_index(drop=True)\n",
    "    d6 = d[d[\"date\"]==20200630].reset_index(drop=True)\n",
    "    return pd.concat([d1,d2,d3,d4,d5,d6],axis=0).reset_index(drop=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "count_train[\"month\"]=count_train[\"date\"].apply(lambda x : int(str(x)[4:6]))\n",
    "count_train[\"day\"]=count_train[\"date\"].apply(lambda x : int(str(x)[6:8]))\n",
    "count_test[\"month\"]=count_test[\"date\"].apply(lambda x : int(str(x)[4:6]))\n",
    "count_test[\"day\"]=count_test[\"date\"].apply(lambda x : int(str(x)[6:8]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "435d93ebf98e4cefa77e78e7c7424c3c",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "HBox(children=(FloatProgress(value=0.0, max=14.0), HTML(value='')))"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "cols=['count']\n",
    "for j in tqdm(range(1,15)):\n",
    "    for i in range(len(cols)):\n",
    "        count_train[cols[i]+'_shifts_'+str(j)]=count_train.groupby(['admin_illness_name'])[cols[i]].shift(j)\n",
    "        count_test[cols[i]+'_shifts_'+str(j)]=count_test.groupby(['admin_illness_name'])[cols[i]].shift(j)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "aeeb1be68b2843579999c7cf244885b4",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "HBox(children=(FloatProgress(value=0.0, max=30.0), HTML(value='')))"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "df_train = pd.DataFrame()\n",
    "for id_ in tqdm(count_train.admin_illness_name.unique()):\n",
    "    tmp = count_train[count_train.admin_illness_name == id_].reset_index(drop=True)\n",
    "    tmp['count_1'] = tmp['count'].shift(-1)\n",
    "    tmp['count_2'] = tmp['count'].shift(-2)\n",
    "    tmp['count_3'] = tmp['count'].shift(-3)\n",
    "    tmp['count_4'] = tmp['count'].shift(-4)\n",
    "    tmp['count_5'] = tmp['count'].shift(-5)\n",
    "    tmp['count_6'] = tmp['count'].shift(-6)\n",
    "    tmp['count_7'] = tmp['count'].shift(-7)\n",
    "    tmp['count_8'] = tmp['count'].shift(-8)\n",
    "    tmp['count_9'] = tmp['count'].shift(-9)\n",
    "    tmp['count_10'] = tmp['count'].shift(-10)\n",
    "    tmp['count_11'] = tmp['count'].shift(-11)\n",
    "    tmp['count_12'] = tmp['count'].shift(-12)\n",
    "    tmp['count_13'] = tmp['count'].shift(-13)\n",
    "    tmp['count_14'] = tmp['count'].shift(-14)\n",
    "    df_train = df_train.append(tmp)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_train =df_train.dropna().reset_index(drop=True)\n",
    "count_test=count_test.dropna().reset_index(drop=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "target_cols = ['count_'+str(i) for i in range(1,15)]\n",
    "feats_cols = [col for col in df_train.columns if col not in target_cols+[\"admin_illness_name\",\"date\"]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import mean_squared_error\n",
    "from sklearn.model_selection import KFold\n",
    "def run_lgb(df_train, df_test,target,col):\n",
    "    model = lgb.LGBMRegressor(n_estimators=100000,random_state=1212)\n",
    "    oof = np.zeros(df_train.shape[0])\n",
    "    preds = np.zeros(df_test.shape[0])\n",
    "    \n",
    "    kfold = KFold(n_splits=5,shuffle=True, random_state=1212)\n",
    "    for fold_id, (trn_idx, val_idx) in enumerate(kfold.split(df_train,target)):\n",
    "        \n",
    "        X_train = df_train.iloc[trn_idx]\n",
    "        Y_train = target.iloc[trn_idx][col]\n",
    "        X_val = df_train.iloc[val_idx]\n",
    "        Y_val = target.iloc[val_idx][col]\n",
    "        lgb_model = model.fit(X_train, \n",
    "                              Y_train,\n",
    "                              eval_names=['train', 'valid'],\n",
    "                              eval_set=[(X_train, Y_train), (X_val, Y_val)],\n",
    "                              verbose=0,\n",
    "                              eval_metric='mse',\n",
    "                              early_stopping_rounds=50)\n",
    "        oof[val_idx] = lgb_model.predict(X_val, num_iteration=lgb_model.best_iteration_)\n",
    "        preds += lgb_model.predict(df_test, num_iteration=lgb_model.best_iteration_)/5\n",
    "    score = mean_squared_error(oof, target[col]) \n",
    "    return oof, preds,score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(702, 17) (6, 17) (702, 14)\n",
      "0 ------ admin_illness_name: 上呼吸道感染\n",
      "114.4927159915786\n",
      "(94, 17) (6, 17) (94, 14)\n",
      "1 ------ admin_illness_name: 上呼吸道疾病\n",
      "297.2813904293511\n",
      "(396, 17) (6, 17) (396, 14)\n",
      "2 ------ admin_illness_name: 丘疹性荨麻疹\n",
      "23.045888033831506\n",
      "(594, 17) (6, 17) (594, 14)\n",
      "3 ------ admin_illness_name: 中耳炎\n",
      "56.30225008381696\n",
      "(680, 17) (6, 17) (680, 14)\n",
      "4 ------ admin_illness_name: 发热\n",
      "1123.9102823319608\n",
      "(80, 17) (6, 17) (80, 14)\n",
      "5 ------ admin_illness_name: 变应性鼻炎\n",
      "61.90167955626206\n",
      "(624, 17) (6, 17) (624, 14)\n",
      "6 ------ admin_illness_name: 呕吐\n",
      "81.0855340873281\n",
      "(690, 17) (6, 17) (690, 14)\n",
      "7 ------ admin_illness_name: 呼吸道感染\n",
      "122.82804015275589\n",
      "(698, 17) (6, 17) (698, 14)\n",
      "8 ------ admin_illness_name: 咳嗽\n",
      "400.43860960511853\n",
      "(570, 17) (6, 17) (570, 14)\n",
      "9 ------ admin_illness_name: 哮喘\n",
      "169.42755072743128\n",
      "(698, 17) (6, 17) (698, 14)\n",
      "10 ------ admin_illness_name: 外伤证\n",
      "107.834847018348\n",
      "(702, 17) (6, 17) (702, 14)\n",
      "11 ------ admin_illness_name: 头晕\n",
      "21.594170675667545\n",
      "(690, 17) (6, 17) (690, 14)\n",
      "12 ------ admin_illness_name: 头痛\n",
      "31.11260933269846\n",
      "(250, 17) (6, 17) (250, 14)\n",
      "13 ------ admin_illness_name: 急性上呼吸道感染\n",
      "373.831985358757\n",
      "(362, 17) (6, 17) (362, 14)\n",
      "14 ------ admin_illness_name: 急性喉炎\n",
      "27.929352482759576\n",
      "(688, 17) (6, 17) (688, 14)\n",
      "15 ------ admin_illness_name: 急性扁桃体炎\n",
      "21.26123599872771\n",
      "(144, 17) (6, 17) (144, 14)\n",
      "16 ------ admin_illness_name: 手足口病\n",
      "611.7641749220818\n",
      "(702, 17) (6, 17) (702, 14)\n",
      "17 ------ admin_illness_name: 支气管炎\n",
      "1163.726726132815\n",
      "(672, 17) (6, 17) (672, 14)\n",
      "18 ------ admin_illness_name: 消化不良\n",
      "23.124298284117287\n",
      "(700, 17) (6, 17) (700, 14)\n",
      "19 ------ admin_illness_name: 湿疹\n",
      "142.55880576072124\n",
      "(88, 17) (6, 17) (88, 14)\n",
      "20 ------ admin_illness_name: 猩红热样红斑\n",
      "27.191068333173043\n",
      "(418, 17) (6, 17) (418, 14)\n",
      "21 ------ admin_illness_name: 疱疹性咽峡炎\n",
      "463.6003767230938\n",
      "(662, 17) (6, 17) (662, 14)\n",
      "22 ------ admin_illness_name: 皮炎\n",
      "34.108587023635984\n",
      "(300, 17) (6, 17) (300, 14)\n",
      "23 ------ admin_illness_name: 皮疹\n",
      "79.66690011462495\n",
      "(688, 17) (6, 17) (688, 14)\n",
      "24 ------ admin_illness_name: 结膜炎\n",
      "27.599566605748418\n",
      "(702, 17) (6, 17) (702, 14)\n",
      "25 ------ admin_illness_name: 肺炎\n",
      "538.0454165370012\n",
      "(290, 17) (6, 17) (290, 14)\n",
      "26 ------ admin_illness_name: 胃肠功能紊乱\n",
      "84.96079467250335\n",
      "(186, 17) (6, 17) (186, 14)\n",
      "27 ------ admin_illness_name: 腹泻\n",
      "157.93819171259835\n",
      "(702, 17) (6, 17) (702, 14)\n",
      "28 ------ admin_illness_name: 腹痛\n",
      "160.43736372523128\n",
      "(568, 17) (6, 17) (568, 14)\n",
      "29 ------ admin_illness_name: 荨麻疹\n",
      "21.42214196933116\n",
      "219.0140851461023\n"
     ]
    }
   ],
   "source": [
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "scores1=[]\n",
    "sub=pd.DataFrame()\n",
    "s=0\n",
    "for qid in count_test.admin_illness_name.unique():\n",
    "    scores2=[]\n",
    "    test_x=get_test(count_test,qid)\n",
    "    x_id = df_train[(df_train.admin_illness_name == qid)][feats_cols]\n",
    "    t_id = test_x[feats_cols]\n",
    "    y_id = df_train[(df_train.admin_illness_name == qid)][target_cols]\n",
    "    for col in target_cols:\n",
    "        oof, preds, score=run_lgb(x_id, t_id, y_id,col)\n",
    "        test_x[col]=preds\n",
    "        scores1.append(score)\n",
    "        scores2.append(score)\n",
    "    sub = pd.concat([sub,test_x],axis=0)\n",
    "    print(x_id.shape,t_id.shape,y_id.shape)\n",
    "    print(s,'------','admin_illness_name:',qid)\n",
    "    print(np.mean(scores2))\n",
    "    s+=1\n",
    "print(np.mean(scores1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>admin_illness_name</th>\n",
       "      <th>count</th>\n",
       "      <th>month</th>\n",
       "      <th>day</th>\n",
       "      <th>count_shifts_1</th>\n",
       "      <th>count_shifts_2</th>\n",
       "      <th>count_shifts_3</th>\n",
       "      <th>count_shifts_4</th>\n",
       "      <th>count_shifts_5</th>\n",
       "      <th>...</th>\n",
       "      <th>count_5</th>\n",
       "      <th>count_6</th>\n",
       "      <th>count_7</th>\n",
       "      <th>count_8</th>\n",
       "      <th>count_9</th>\n",
       "      <th>count_10</th>\n",
       "      <th>count_11</th>\n",
       "      <th>count_12</th>\n",
       "      <th>count_13</th>\n",
       "      <th>count_14</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>20190228</td>\n",
       "      <td>上呼吸道感染</td>\n",
       "      <td>35.0</td>\n",
       "      <td>2</td>\n",
       "      <td>28</td>\n",
       "      <td>37.0</td>\n",
       "      <td>50.0</td>\n",
       "      <td>63.0</td>\n",
       "      <td>46.0</td>\n",
       "      <td>40.0</td>\n",
       "      <td>...</td>\n",
       "      <td>39.034538</td>\n",
       "      <td>34.204763</td>\n",
       "      <td>32.608733</td>\n",
       "      <td>32.906032</td>\n",
       "      <td>30.362302</td>\n",
       "      <td>37.000872</td>\n",
       "      <td>37.500367</td>\n",
       "      <td>32.845910</td>\n",
       "      <td>29.313137</td>\n",
       "      <td>27.947554</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>20190531</td>\n",
       "      <td>上呼吸道感染</td>\n",
       "      <td>88.0</td>\n",
       "      <td>5</td>\n",
       "      <td>31</td>\n",
       "      <td>47.0</td>\n",
       "      <td>66.0</td>\n",
       "      <td>82.0</td>\n",
       "      <td>85.0</td>\n",
       "      <td>91.0</td>\n",
       "      <td>...</td>\n",
       "      <td>40.507024</td>\n",
       "      <td>44.591144</td>\n",
       "      <td>43.241562</td>\n",
       "      <td>36.426485</td>\n",
       "      <td>33.737733</td>\n",
       "      <td>38.012529</td>\n",
       "      <td>36.762834</td>\n",
       "      <td>33.923896</td>\n",
       "      <td>30.956122</td>\n",
       "      <td>30.864700</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>20190831</td>\n",
       "      <td>上呼吸道感染</td>\n",
       "      <td>66.0</td>\n",
       "      <td>8</td>\n",
       "      <td>31</td>\n",
       "      <td>125.0</td>\n",
       "      <td>93.0</td>\n",
       "      <td>77.0</td>\n",
       "      <td>93.0</td>\n",
       "      <td>100.0</td>\n",
       "      <td>...</td>\n",
       "      <td>41.645976</td>\n",
       "      <td>44.747064</td>\n",
       "      <td>43.593038</td>\n",
       "      <td>36.685259</td>\n",
       "      <td>33.737733</td>\n",
       "      <td>38.012529</td>\n",
       "      <td>36.451217</td>\n",
       "      <td>33.759105</td>\n",
       "      <td>31.146944</td>\n",
       "      <td>30.864700</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>20191130</td>\n",
       "      <td>上呼吸道感染</td>\n",
       "      <td>118.0</td>\n",
       "      <td>11</td>\n",
       "      <td>30</td>\n",
       "      <td>119.0</td>\n",
       "      <td>112.0</td>\n",
       "      <td>112.0</td>\n",
       "      <td>87.0</td>\n",
       "      <td>122.0</td>\n",
       "      <td>...</td>\n",
       "      <td>56.649163</td>\n",
       "      <td>59.948451</td>\n",
       "      <td>59.827116</td>\n",
       "      <td>59.376260</td>\n",
       "      <td>57.476475</td>\n",
       "      <td>58.988084</td>\n",
       "      <td>57.676347</td>\n",
       "      <td>56.835250</td>\n",
       "      <td>56.642161</td>\n",
       "      <td>58.372953</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>20200331</td>\n",
       "      <td>上呼吸道感染</td>\n",
       "      <td>29.0</td>\n",
       "      <td>3</td>\n",
       "      <td>31</td>\n",
       "      <td>55.0</td>\n",
       "      <td>62.0</td>\n",
       "      <td>70.0</td>\n",
       "      <td>66.0</td>\n",
       "      <td>44.0</td>\n",
       "      <td>...</td>\n",
       "      <td>40.716942</td>\n",
       "      <td>43.830869</td>\n",
       "      <td>32.254801</td>\n",
       "      <td>34.905614</td>\n",
       "      <td>31.715163</td>\n",
       "      <td>37.741164</td>\n",
       "      <td>35.942152</td>\n",
       "      <td>32.306922</td>\n",
       "      <td>30.267719</td>\n",
       "      <td>28.902187</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>20190531</td>\n",
       "      <td>荨麻疹</td>\n",
       "      <td>14.0</td>\n",
       "      <td>5</td>\n",
       "      <td>31</td>\n",
       "      <td>15.0</td>\n",
       "      <td>15.0</td>\n",
       "      <td>24.0</td>\n",
       "      <td>25.0</td>\n",
       "      <td>19.0</td>\n",
       "      <td>...</td>\n",
       "      <td>19.536137</td>\n",
       "      <td>19.985792</td>\n",
       "      <td>19.527909</td>\n",
       "      <td>20.723194</td>\n",
       "      <td>21.371063</td>\n",
       "      <td>21.637153</td>\n",
       "      <td>22.128459</td>\n",
       "      <td>19.092823</td>\n",
       "      <td>19.272648</td>\n",
       "      <td>20.577501</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>20190831</td>\n",
       "      <td>荨麻疹</td>\n",
       "      <td>25.0</td>\n",
       "      <td>8</td>\n",
       "      <td>31</td>\n",
       "      <td>26.0</td>\n",
       "      <td>34.0</td>\n",
       "      <td>36.0</td>\n",
       "      <td>16.0</td>\n",
       "      <td>31.0</td>\n",
       "      <td>...</td>\n",
       "      <td>22.571900</td>\n",
       "      <td>23.570803</td>\n",
       "      <td>26.406694</td>\n",
       "      <td>25.367899</td>\n",
       "      <td>24.478557</td>\n",
       "      <td>22.667659</td>\n",
       "      <td>20.385878</td>\n",
       "      <td>21.848215</td>\n",
       "      <td>19.889440</td>\n",
       "      <td>20.060154</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>20191130</td>\n",
       "      <td>荨麻疹</td>\n",
       "      <td>21.0</td>\n",
       "      <td>11</td>\n",
       "      <td>30</td>\n",
       "      <td>14.0</td>\n",
       "      <td>18.0</td>\n",
       "      <td>25.0</td>\n",
       "      <td>25.0</td>\n",
       "      <td>18.0</td>\n",
       "      <td>...</td>\n",
       "      <td>20.648558</td>\n",
       "      <td>16.512609</td>\n",
       "      <td>15.342662</td>\n",
       "      <td>18.436414</td>\n",
       "      <td>20.423220</td>\n",
       "      <td>16.423418</td>\n",
       "      <td>17.146491</td>\n",
       "      <td>17.459530</td>\n",
       "      <td>16.054289</td>\n",
       "      <td>14.919480</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>20200331</td>\n",
       "      <td>荨麻疹</td>\n",
       "      <td>5.0</td>\n",
       "      <td>3</td>\n",
       "      <td>31</td>\n",
       "      <td>6.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>7.0</td>\n",
       "      <td>...</td>\n",
       "      <td>5.566125</td>\n",
       "      <td>5.482150</td>\n",
       "      <td>9.001610</td>\n",
       "      <td>5.808987</td>\n",
       "      <td>4.829786</td>\n",
       "      <td>3.653544</td>\n",
       "      <td>4.872577</td>\n",
       "      <td>6.958427</td>\n",
       "      <td>7.769379</td>\n",
       "      <td>9.594483</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>20200630</td>\n",
       "      <td>荨麻疹</td>\n",
       "      <td>15.0</td>\n",
       "      <td>6</td>\n",
       "      <td>30</td>\n",
       "      <td>20.0</td>\n",
       "      <td>16.0</td>\n",
       "      <td>32.0</td>\n",
       "      <td>32.0</td>\n",
       "      <td>22.0</td>\n",
       "      <td>...</td>\n",
       "      <td>21.898169</td>\n",
       "      <td>21.457072</td>\n",
       "      <td>19.345590</td>\n",
       "      <td>20.585110</td>\n",
       "      <td>22.814833</td>\n",
       "      <td>21.060728</td>\n",
       "      <td>19.483273</td>\n",
       "      <td>19.919185</td>\n",
       "      <td>18.816485</td>\n",
       "      <td>22.161358</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>180 rows × 33 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        date admin_illness_name  count  month  day  count_shifts_1  \\\n",
       "0   20190228             上呼吸道感染   35.0      2   28            37.0   \n",
       "1   20190531             上呼吸道感染   88.0      5   31            47.0   \n",
       "2   20190831             上呼吸道感染   66.0      8   31           125.0   \n",
       "3   20191130             上呼吸道感染  118.0     11   30           119.0   \n",
       "4   20200331             上呼吸道感染   29.0      3   31            55.0   \n",
       "..       ...                ...    ...    ...  ...             ...   \n",
       "1   20190531                荨麻疹   14.0      5   31            15.0   \n",
       "2   20190831                荨麻疹   25.0      8   31            26.0   \n",
       "3   20191130                荨麻疹   21.0     11   30            14.0   \n",
       "4   20200331                荨麻疹    5.0      3   31             6.0   \n",
       "5   20200630                荨麻疹   15.0      6   30            20.0   \n",
       "\n",
       "    count_shifts_2  count_shifts_3  count_shifts_4  count_shifts_5  ...  \\\n",
       "0             50.0            63.0            46.0            40.0  ...   \n",
       "1             66.0            82.0            85.0            91.0  ...   \n",
       "2             93.0            77.0            93.0           100.0  ...   \n",
       "3            112.0           112.0            87.0           122.0  ...   \n",
       "4             62.0            70.0            66.0            44.0  ...   \n",
       "..             ...             ...             ...             ...  ...   \n",
       "1             15.0            24.0            25.0            19.0  ...   \n",
       "2             34.0            36.0            16.0            31.0  ...   \n",
       "3             18.0            25.0            25.0            18.0  ...   \n",
       "4              7.0             9.0             6.0             7.0  ...   \n",
       "5             16.0            32.0            32.0            22.0  ...   \n",
       "\n",
       "      count_5    count_6    count_7    count_8    count_9   count_10  \\\n",
       "0   39.034538  34.204763  32.608733  32.906032  30.362302  37.000872   \n",
       "1   40.507024  44.591144  43.241562  36.426485  33.737733  38.012529   \n",
       "2   41.645976  44.747064  43.593038  36.685259  33.737733  38.012529   \n",
       "3   56.649163  59.948451  59.827116  59.376260  57.476475  58.988084   \n",
       "4   40.716942  43.830869  32.254801  34.905614  31.715163  37.741164   \n",
       "..        ...        ...        ...        ...        ...        ...   \n",
       "1   19.536137  19.985792  19.527909  20.723194  21.371063  21.637153   \n",
       "2   22.571900  23.570803  26.406694  25.367899  24.478557  22.667659   \n",
       "3   20.648558  16.512609  15.342662  18.436414  20.423220  16.423418   \n",
       "4    5.566125   5.482150   9.001610   5.808987   4.829786   3.653544   \n",
       "5   21.898169  21.457072  19.345590  20.585110  22.814833  21.060728   \n",
       "\n",
       "     count_11   count_12   count_13   count_14  \n",
       "0   37.500367  32.845910  29.313137  27.947554  \n",
       "1   36.762834  33.923896  30.956122  30.864700  \n",
       "2   36.451217  33.759105  31.146944  30.864700  \n",
       "3   57.676347  56.835250  56.642161  58.372953  \n",
       "4   35.942152  32.306922  30.267719  28.902187  \n",
       "..        ...        ...        ...        ...  \n",
       "1   22.128459  19.092823  19.272648  20.577501  \n",
       "2   20.385878  21.848215  19.889440  20.060154  \n",
       "3   17.146491  17.459530  16.054289  14.919480  \n",
       "4    4.872577   6.958427   7.769379   9.594483  \n",
       "5   19.483273  19.919185  18.816485  22.161358  \n",
       "\n",
       "[180 rows x 33 columns]"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sub"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "to_predict[\"count\"]=0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "for c in sub.admin_illness_name.unique():\n",
    "    a=sub.loc[sub['admin_illness_name']==c,target_cols].values.flatten()\n",
    "    to_predict.loc[to_predict['admin_illness_name']==c,\"count\"]=a"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "to_predict['count']=to_predict['count'].astype(int)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "to_predict[[\"id\",\"count\"]].to_csv(\"./result/submit_{}.csv\".format(round(np.mean(scores1),6)),index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "\n",
    "plt.plot(list(range(365)),a)\n",
    "plt.plot(list(range(365,365+363)),b)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "conda_tensorflow2_py3",
   "language": "python",
   "name": "conda_tensorflow2_py3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
